![]() | MENTAL, UN MODELO COMPUTACIONAL UNIVERSAL |
| Condiciones | Acciones | |||
| Estado actual | Símbolo leído | Símbolo a grabar | Mov. cabeza | Nuevo estado |
| 1 | a | c | Derecha | 2 |
| 2 | b | a | Izquierda | 3 |
| 3 | c | b | Derecha | 1 |
| N° | Lenguaje de programación esencial | MENTAL |
| 1 | Tipo de datos: entero no negativo. | Existe. |
| 2 | Identificadores: nombres, cada uno de los cuales tiene asociado un valor. | Pueden especificarse. |
| 3 | incr nombre; (incrementa en 1 el valor asociado a nombre) | (nombre = nombre + 1)
|
| 4 | decr nombre; (decrementa en 1; si es cero, permanece dicho valor). | ( nombre>0 → (nombre = nombre − 1) )
|
| 5 | Estructura de control:
While nombre ≠ 0 do; x End; | 〈( (nombre ≠ 0) → x )〉
|
| Característica | Máquina de Turing | MENTAL |
| Modelo teórico | Sí | Sí |
| Nivel de abstracción | Bajo | Supremo |
| Modelo | Particular | Universal |
| Límites | Tesis Chuch-Turing | Grados de libertad |
| Simplicidad | Sí (operativo) | Sí (conceptual) |
| Computación | Elemental | General |
| Algorítmica | Elemental | Semántica |
| Entorno | No | Sí (espacio abstracto) |
| Interactividad | No | Sí |
| Código modificable | No | Sí |
| Lenguaje formal | No | Sí |
| Tipo de modelo | Operativo | Operativo y descriptivo |
| Paralelismo | No | Sí |
| Estructuras de información | Limitadas | Las de las primitivas |
| Reflexividad | No | Sí |
| Paradigmas | Imperativo | Universal |
| Modelo de la mente | No | Sí (universal) |
(b = " ") // carácter blanco
(cinta =: b★) // secuencia infinita de caracteres en blanco
(a0 = b) // carácter blanco
(alfa = ( a0 … an )) // alfabeto de n caracteres
m estados: 1, … , m.
i: Número de posición del cabezal sobre la cinta. Inicialmente, (i = i0).
j: Número del estado. Inicialmente, (j = j0).
k: Número del elemento del alfabeto a grabar sobre la cinta en la posición del cabezal.
(i = i+1).
(i = i−1).
(cinta\i = alfa\k)
j1: (j = j1)
¡ (finalizar la ejecución)
〈( (j = j1) → (cinta\i = alfa\k) → acciones )〉
j1 y si en la actual posición de la cinta está el elemento del alfabeto de orden k, entonces ejecutar una o varias acciones. Hay dos condiciones (puede haber una condición o ninguna) y una o varias acciones entre las cinco alternativas mencionadas.
( turing = ( (b = " ")
(cinta =: b★)
(a0 = b)
(alfa = ( a0…an ))
(i = i0)
(j°> = j0)
( r1…rn ) )!
)
r1, ..., rn son las reglas de funcionamiento de la máquina. Las reglas son expresiones genéricas, por lo que siempre están activas y se realizan las acciones si se cumplen las condiciones correspondientes.
( grabaunos = ( (b = " ")
(cinta =: b★)
(i = 1) )
)
〈( (cinta\i = "1") (i = i+1) )〉
s sobre la cinta, hacia la derecha, y cuando lo encuentra se para:
( buscar = ( (i° = 1)
〈((cinta\i = s) → ¡) (i = i+1))〉 )!
)
( Turing = (
//
// valores iniciales
//
( i = 1 ) // posición inicial del cabezal
( j = 1 ) // estado inicial
( cinta =: " "★) // cinta inicial (secuencia infinita a blancos)
//
// reglas
//
〈 ((est=1 → (cinta\i = a)) →
((cinta\i = c) (i = i+1) (j = 2)))
((est=2 → (cinta\i = b)) →
((cinta\i = a) (i = i−1) (j = 3)))
((est=3 → (cinta\i = c)) →
((cinta\i = b) (j = 1))) 〉
)
| N° | Primitiva | Función |
| 1 | (...) (secuencia) | Secuencia de los elementos de la cinta (memoria lineal) |
| 2 | + (suma) y− (resta) | Desplazar respectivamente hacia la derecha y hacia la izquierda el cabezal sobre la cinta |
| 3 | = (sustitución) | Sustituir el símbolo en una celda de la cinta en la posición del cabezal |
| 4 | =: (sustitución diferida, representación) | Se utilizan indirectamente en las operaciones derivadas ★ (repetición) y … (rango)
|
| 5 | → (condición) | Condición de cada regla de funcionamiento de la máquina |
| 6 | \ (particularización cuantitativa) | Acceder a un determinado símbolo (del alfabeto o de la cinta) |
| 7 | evaluación (no hay símbolo) y ° (no evaluación) | En las expresiones de sustitución |
| 8 | Generalización no parametrizada | En las definiciones de las reglas |